// Make sure and use old Arduino IDE Software version 1.6.11 (for sure, it's what I use) or earlier (possibly). Latest version doesn't work.
// Old versions can be downloaded here: https://www.arduino.cc/en/Main/OldSoftwareReleases#previous
// Also have to install an older version of Python 2.7.13 as per beginner instructions in 2. below. NOT latest Python version. Doesn't work.
// Also need to load all the libraries listed at the top of the code into Arduino IDE.
//
// The following Nodemcu 12E (LoLin V3) code includes lines for Over the Air Programming,
// LED control from web page, DS32331 Real Time Clock display, DHT22 temp and humidity display, DS18B20 temp display,
// MCP23017 digital I/O expander with button input and LED output and 4 channel relay board
// Relay power is 5 V so LoLin Nodemcu 12E has a VU output which is V USB and is 5 V
// Analog input from photo resistor will be used to detect flame ON LED on gas furnace.
// Most of these functions are used for gas furnace and water heater control currently using Arduino Uno. Ran out of memory with the Uno. Saves $60-$80 per month. $500+ per year.
// To be replaced with this ESP8266. MCP23017 outputs are connected to a relay board for furnace and water heater control.
// Code is cut and pasted from many sources especially examples from included library directories
//
// Screenshot of html web page coming from the board is here:
// https://sites.google.com/site/nodemcu12e/
//
// Picture of setup and wiring is here:
// https://sites.google.com/site/nodemcu12e/
//
// Nodemcu 12E board spans across the edges of two 17X10 protoboards so lots of pin locations are available plus isolated pin area
// for mounting Real Time Clock DS3231, DHT22 temp and humidity, input button and photoresistor and DS18B20 connections.
// Third board is for MCP23017. All are mounted on a piece of plastic.
//
// For beginners I followed these videos and website instructions in order.
//
// 1. Getting started. You have to add esp8266 to list of boards in Arduino IDE.
// Put a 200 ohm resistor in series with the LED NOT directly on output as shown.
// https://m.youtube.com/watch?v=NEo1WsT5T7s
//
// 2. Wireless Over The Air (OTA) programming setup. Serial monitor won't work after this.
// https://m.youtube.com/watch?v=ZVA1pV6WUQg
//
// 3. Control LED from a web page. Need to learn some html
// http://internetofthinking.blogspot.ca/2015/12/control-led-from-webserver-using.html
//
// 4. To create a web page to store images and program backup:
// http://youtu.be/vgpbGjXRObE
#include "); // large font applies between and
"
"" // Yellow LED ON button definition. No spaces
" " // horizontal space between buttons
"" //Yellow LED OFF button definition. No spaces
" "
"" // Red LED ON button definition. No spaces
" " // horizontal space between buttons
"" //Red LED OFF button definition. No spaces
" " // horizontal space between buttons
""); //Home button definition. No spaces
// client.print(" "); // add spaces
//client.println(
// " "); // add spaces
//*****End Button Definition************************************************************************************************
//*****send LED status pics*************************************************************************************************
if (digitalRead(D6) == 1) yvalue = 1;
if (digitalRead(D6) == 0) yvalue = 0;
if (digitalRead(D7) == 1) rvalue = 1;
if (digitalRead(D7) == 0) rvalue = 0;
if ((yvalue == HIGH) && (rvalue == HIGH)){
client.println("");
client.println("
");
}
if ((yvalue == LOW) && (rvalue == LOW)){
client.println("");
client.println("
");
}
if ((yvalue == HIGH) && (rvalue == LOW)){
client.println("");
client.println("
");
}
if ((yvalue == LOW) && (rvalue == HIGH)){
client.println("");
client.println(" ");
}
client.println("
");
client.println("
");
client.println(""); // internet date and time display
//*****end LED status pics. No spaces in file names or it adds %20 for space in file name***************************************
//*****send Images to web page. Image files are stored on a Google nodemcuwebpics web site so only link is needed here.*****
client.println("
" // carriage return start new line
// client.println(""
// "
"
// "
"
" "
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
");
//client.println(" "); // add space
//client.println("Inside Temp");
//client.println(t1,1); // print temp
//client.println("C"); // print temp
//client.println(" "); // add space
//client.println("RH"); // print temp
//client.println(h1,1); // print humidity
//client.println("%"); // print humidity %
//client.println(" ");
//client.println("Furnace LED: ");
//client.println(analoginput);
//client.println(" ");
//client.println(" Basement Temp ");
//client.println(temp1,1); //One decimal place
//client.println("C");
//client.println(" ");
//client.println(" Outside Temp ");
//client.println(temp2,1); //One decimal place
//client.println("C");
// Html sticks a space between println objects whether you want one or not. Create a single string to stop this.
client.println(" "); // add space
client.println("Inside Temp");
insidetemp = String(t1,1)+"C ";
humidity = "RH "+String(h1,1)+"% ";
furnaceLED = "Furnace LED "+String(analoginput)+" ";
basementtemp = "Basement Temp "+String(temp1,1)+"C ";
outsidetemp = "Outside Temp "+String(temp2,1)+"C";
tempdata = insidetemp + humidity + furnaceLED + basementtemp + outsidetemp;
client.println(tempdata);
client.println("
"
"
"
//***Furnace and water heater buttons***************
" " //Clear Flag button definition. No spaces
" "
" "
//***End furnace and water heater buttons***********
"
"
"
");
//****Print furnace and water heater data
client.println(" OFF Flag");client.println(furnaceOFFflag);
client.println(" ");
if (furnaceONvalue >= 150) { client.println("Furnace:ON "); client.println(" ");}
if (furnaceONvalue < 150) client.println("Furnace:OFF");
client.println(" ");
if (furnacelo == 1) client.println("LO");
if (furnacelo == 0) client.println("HI");
client.println(" ");
client.println("Low SP"); client.println(lowsetpoint,1);
client.println(" ");
if (autowh == 1) client.println("Auto:ON ");
if (autowh == 0) client.println("Auto:OFF");
client.println(" ");
if (HeaterOFF == 1) client.println("Heater:OFF");
if (HeaterOFF == 0) client.println("Heater:ON");
client.println("
");
client.println(" ");
client.println("ON time");
StrfurnaceONtime = " " + String(furnaceONtime);
if (furnaceONtime < 10) StrfurnaceONtime = " " + StrfurnaceONtime; // add leading spaces
if (furnaceONtime < 100) StrfurnaceONtime = " " + StrfurnaceONtime;
if (furnaceONtime < 1000) StrfurnaceONtime = " " + StrfurnaceONtime;
if (furnaceONtime < 10000) StrfurnaceONtime = " " + StrfurnaceONtime;
client.println(StrfurnaceONtime);
client.println("Rcrd");
StrfurnaceONrecord = String(furnaceONrecord);
if (furnaceONrecord < 10) StrfurnaceONrecord = " " + StrfurnaceONrecord; // add leading spaces
if (furnaceONrecord < 100) StrfurnaceONrecord = " " + StrfurnaceONrecord;
if (furnaceONrecord < 1000) StrfurnaceONrecord = " " + StrfurnaceONrecord;
if (furnaceONrecord < 10000) StrfurnaceONrecord = " " + StrfurnaceONrecord;
client.println(StrfurnaceONrecord);
client.println("
");
client.println(" ");
client.println("OFF time");
StrfurnaceOFFtime = String(furnaceOFFtime);
if (furnaceOFFtime < 10) StrfurnaceOFFtime = " " + StrfurnaceOFFtime; // add leading spaces
if (furnaceOFFtime < 100) StrfurnaceOFFtime = " " + StrfurnaceOFFtime;
if (furnaceOFFtime < 1000) StrfurnaceOFFtime = " " + StrfurnaceOFFtime;
if (furnaceOFFtime < 10000) StrfurnaceOFFtime = " " + StrfurnaceOFFtime;
client.println(StrfurnaceOFFtime);
client.println("Rcrd");
StrfurnaceOFFrecord = String(furnaceOFFrecord);
if (furnaceOFFrecord < 10) StrfurnaceOFFrecord = " " + StrfurnaceOFFrecord; // add leading spaces
if (furnaceOFFrecord < 100) StrfurnaceOFFrecord = " " + StrfurnaceOFFrecord;
if (furnaceOFFrecord < 1000) StrfurnaceOFFrecord = " " + StrfurnaceOFFrecord;
if (furnaceOFFrecord < 10000) StrfurnaceOFFrecord = " " + StrfurnaceOFFrecord;
client.println(StrfurnaceOFFrecord);
client.println("
");
client.println(" ");
client.println("ON total");
StrONtotal = String(ONtotal);
if (ONtotal < 10) StrONtotal = " " + StrONtotal; // add leading spaces
if (ONtotal < 100) StrONtotal = " " + StrONtotal;
if (ONtotal < 1000) StrONtotal = " " + StrONtotal;
if (ONtotal < 10000) StrONtotal = " " + StrONtotal;
client.println(StrONtotal);
client.println("ON%");
client.println(ONpercent);
client.println("
");
client.println(" ");
String heading = "Tm Total Hour";
heading = heading + " " + " " + " ";
heading = heading + "%";
client.println(heading);
client.println("
");
client.println(" ");
String StrONtotal0 = String(ONtotal0);
if (ONtotal0 < 10) StrONtotal0 = " " + StrONtotal0; // add leading spaces
if (ONtotal0 < 100) StrONtotal0 = " " + StrONtotal0;
if (ONtotal0 < 1000) StrONtotal0 = " " + StrONtotal0;
if (ONtotal0 < 10000) StrONtotal0 = " " + StrONtotal0;
String StrONhour0 = String(ONhour0);
if (ONhour0 < 10) StrONhour0 = " " + StrONhour0; // add leading spaces
if (ONhour0 < 100) StrONhour0 = " " + StrONhour0;
if (ONhour0 < 1000) StrONhour0 = " " + StrONhour0;
String StrONpct0 = String(ONpct0);
if (ONpct0 < 10) StrONpct0 = " " + StrONpct0; // add leading spaces
if (ONpct0 < 100) StrONpct0 = " " + StrONpct0; // add leading spaces
client.println("00");
client.println(StrONtotal0);
client.println(StrONhour0);
client.println(StrONpct0);
client.println("
");
client.println(" ");
String StrONtotal1 = String(ONtotal1);
if (ONtotal1 < 10) StrONtotal1 = " " + StrONtotal1; // add leading spaces
if (ONtotal1 < 100) StrONtotal1 = " " + StrONtotal1;
if (ONtotal1 < 1000) StrONtotal1 = " " + StrONtotal1;
if (ONtotal1 < 10000) StrONtotal1 = " " + StrONtotal1;
String StrONhour1 = String(ONhour1);
if (ONhour1 < 10) StrONhour1 = " " + StrONhour1; // add leading spaces
if (ONhour1 < 100) StrONhour1 = " " + StrONhour1;
if (ONhour1 < 1000) StrONhour1 = " " + StrONhour1;
String StrONpct1 = String(ONpct1);
if (ONpct1 < 10) StrONpct1 = " " + StrONpct1; // add leading spaces
if (ONpct1 < 100) StrONpct1 = " " + StrONpct1; // add leading spaces
client.println("01");
client.println(StrONtotal1);
client.println(StrONhour1);
client.println(StrONpct1);
client.println("
");
client.println(" ");
String StrONtotal2 = String(ONtotal2);
if (ONtotal2 < 10) StrONtotal2 = " " + StrONtotal2; // add leading spaces
if (ONtotal2 < 100) StrONtotal2 = " " + StrONtotal2;
if (ONtotal2 < 1000) StrONtotal2 = " " + StrONtotal2;
if (ONtotal2 < 10000) StrONtotal2 = " " + StrONtotal2;
String StrONhour2 = String(ONhour2);
if (ONhour2 < 10) StrONhour2 = " " + StrONhour2; // add leading spaces
if (ONhour2 < 100) StrONhour2 = " " + StrONhour2;
if (ONhour2 < 1000) StrONhour2 = " " + StrONhour2;
String StrONpct2 = String(ONpct2);
if (ONpct2 < 10) StrONpct2 = " " + StrONpct2; // add leading spaces
if (ONpct2 < 100) StrONpct2 = " " + StrONpct2; // add leading spaces
client.println("02");
client.println(StrONtotal2);
client.println(StrONhour2);
client.println(StrONpct2);
client.println("
");
client.println(" ");
String StrONtotal3 = String(ONtotal3);
if (ONtotal3 < 10) StrONtotal3 = " " + StrONtotal3; // add leading spaces
if (ONtotal3 < 100) StrONtotal3 = " " + StrONtotal3;
if (ONtotal3 < 1000) StrONtotal3 = " " + StrONtotal3;
if (ONtotal3 < 10000) StrONtotal3 = " " + StrONtotal3;
String StrONhour3 = String(ONhour3);
if (ONhour3 < 10) StrONhour3 = " " + StrONhour3; // add leading spaces
if (ONhour3 < 100) StrONhour3 = " " + StrONhour3;
if (ONhour3 < 1000) StrONhour3 = " " + StrONhour3;
String StrONpct3 = String(ONpct3);
if (ONpct3 < 10) StrONpct3 = " " + StrONpct3; // add leading spaces
if (ONpct3 < 100) StrONpct3 = " " + StrONpct3; // add leading spaces
client.println("03");
client.println(StrONtotal3);
client.println(StrONhour3);
client.println(StrONpct3);
client.println("
");
client.println(" ");
String StrONtotal4 = String(ONtotal4);
if (ONtotal4 < 10) StrONtotal4 = " " + StrONtotal4; // add leading spaces
if (ONtotal4 < 100) StrONtotal4 = " " + StrONtotal4;
if (ONtotal4 < 1000) StrONtotal4 = " " + StrONtotal4;
if (ONtotal4 < 10000) StrONtotal4 = " " + StrONtotal4;
String StrONhour4 = String(ONhour4);
if (ONhour4 < 10) StrONhour4 = " " + StrONhour4; // add leading spaces
if (ONhour4 < 100) StrONhour4 = " " + StrONhour4;
if (ONhour4 < 1000) StrONhour4 = " " + StrONhour4;
String StrONpct4 = String(ONpct4);
if (ONpct4 < 10) StrONpct4 = " " + StrONpct4; // add leading spaces
if (ONpct4 < 100) StrONpct4 = " " + StrONpct4; // add leading spaces
client.println("04");
client.println(StrONtotal4);
client.println(StrONhour4);
client.println(StrONpct4);
client.println("
");
client.println(" ");
String StrONtotal5 = String(ONtotal5);
if (ONtotal5 < 10) StrONtotal5 = " " + StrONtotal5; // add leading spaces
if (ONtotal5 < 100) StrONtotal5 = " " + StrONtotal5;
if (ONtotal5 < 1000) StrONtotal5 = " " + StrONtotal5;
if (ONtotal5 < 10000) StrONtotal5 = " " + StrONtotal5;
String StrONhour5 = String(ONhour5);
if (ONhour5 < 10) StrONhour5 = " " + StrONhour5; // add leading spaces
if (ONhour5 < 100) StrONhour5 = " " + StrONhour5;
if (ONhour5 < 1000) StrONhour5 = " " + StrONhour5;
String StrONpct5 = String(ONpct5);
if (ONpct5 < 10) StrONpct5 = " " + StrONpct5; // add leading spaces
if (ONpct5 < 100) StrONpct5 = " " + StrONpct5; // add leading spaces
client.println("05");
client.println(StrONtotal5);
client.println(StrONhour5);
client.println(StrONpct5);
client.println("
");
client.println(" ");
String StrONtotal6 = String(ONtotal6);
if (ONtotal6 < 10) StrONtotal6 = " " + StrONtotal6; // add leading spaces
if (ONtotal6 < 100) StrONtotal6 = " " + StrONtotal6;
if (ONtotal6 < 1000) StrONtotal6 = " " + StrONtotal6;
if (ONtotal6 < 10000) StrONtotal6 = " " + StrONtotal6;
String StrONhour6 = String(ONhour6);
if (ONhour6 < 10) StrONhour6 = " " + StrONhour6; // add leading spaces
if (ONhour6 < 100) StrONhour6 = " " + StrONhour6;
if (ONhour6 < 1000) StrONhour6 = " " + StrONhour6;
String StrONpct6 = String(ONpct6);
if (ONpct6 < 10) StrONpct6 = " " + StrONpct6; // add leading spaces
if (ONpct6 < 100) StrONpct6 = " " + StrONpct6; // add leading spaces
client.println("06");
client.println(StrONtotal6);
client.println(StrONhour6);
client.println(StrONpct6);
client.println("
");
client.println(" ");
String StrONtotal7 = String(ONtotal7);
if (ONtotal7 < 10) StrONtotal7 = " " + StrONtotal7; // add leading spaces
if (ONtotal7 < 100) StrONtotal7 = " " + StrONtotal7;
if (ONtotal7 < 1000) StrONtotal7 = " " + StrONtotal7;
if (ONtotal7 < 10000) StrONtotal7 = " " + StrONtotal7;
String StrONhour7 = String(ONhour7);
if (ONhour7 < 10) StrONhour7 = " " + StrONhour7; // add leading spaces
if (ONhour7 < 100) StrONhour7 = " " + StrONhour7;
if (ONhour7 < 1000) StrONhour7 = " " + StrONhour7;
String StrONpct7 = String(ONpct7);
if (ONpct7 < 10) StrONpct7 = " " + StrONpct7; // add leading spaces
if (ONpct7 < 100) StrONpct7 = " " + StrONpct7; // add leading spaces
client.println("07");
client.println(StrONtotal7);
client.println(StrONhour7);
client.println(StrONpct7);
client.println("
");
client.println(" ");
String StrONtotal8 = String(ONtotal8);
if (ONtotal8 < 10) StrONtotal8 = " " + StrONtotal8; // add leading spaces
if (ONtotal8 < 100) StrONtotal8 = " " + StrONtotal8;
if (ONtotal8 < 1000) StrONtotal8 = " " + StrONtotal8;
if (ONtotal8 < 10000) StrONtotal8 = " " + StrONtotal8;
String StrONhour8 = String(ONhour8);
if (ONhour8 < 10) StrONhour8 = " " + StrONhour8; // add leading spaces
if (ONhour8 < 100) StrONhour8 = " " + StrONhour8;
if (ONhour8 < 1000) StrONhour8 = " " + StrONhour8;
String StrONpct8 = String(ONpct8);
if (ONpct8 < 10) StrONpct8 = " " + StrONpct8; // add leading spaces
if (ONpct8 < 100) StrONpct8 = " " + StrONpct8; // add leading spaces
client.println("08");
client.println(StrONtotal8);
client.println(StrONhour8);
client.println(StrONpct8);
client.println("
");
client.println(" ");
String StrONtotal9 = String(ONtotal9);
if (ONtotal9 < 10) StrONtotal9 = " " + StrONtotal9; // add leading spaces
if (ONtotal9 < 100) StrONtotal9 = " " + StrONtotal9;
if (ONtotal9 < 1000) StrONtotal9 = " " + StrONtotal9;
if (ONtotal9 < 10000) StrONtotal9 = " " + StrONtotal9;
String StrONhour9 = String(ONhour9);
if (ONhour9 < 10) StrONhour9 = " " + StrONhour9; // add leading spaces
if (ONhour9 < 100) StrONhour9 = " " + StrONhour9;
if (ONhour9 < 1000) StrONhour9 = " " + StrONhour9;
String StrONpct9 = String(ONpct9);
if (ONpct9 < 10) StrONpct9 = " " + StrONpct9; // add leading spaces
if (ONpct9 < 100) StrONpct9 = " " + StrONpct9; // add leading spaces
client.println("09");
client.println(StrONtotal9);
client.println(StrONhour9);
client.println(StrONpct9);
client.println("
");
client.println(" ");
String StrONtotal10 = String(ONtotal10);
if (ONtotal10 < 10) StrONtotal10 = " " + StrONtotal10; // add leading spaces
if (ONtotal10 < 100) StrONtotal10 = " " + StrONtotal10;
if (ONtotal10 < 1000) StrONtotal10 = " " + StrONtotal10;
if (ONtotal10 < 10000) StrONtotal10 = " " + StrONtotal10;
String StrONhour10 = String(ONhour10);
if (ONhour10 < 10) StrONhour10 = " " + StrONhour10; // add leading spaces
if (ONhour10 < 100) StrONhour10 = " " + StrONhour10;
if (ONhour10 < 1000) StrONhour10 = " " + StrONhour10;
String StrONpct10 = String(ONpct10);
if (ONpct10 < 10) StrONpct10 = " " + StrONpct10; // add leading spaces
if (ONpct10 < 100) StrONpct10 = " " + StrONpct10; // add leading spaces
client.println("10");
client.println(StrONtotal10);
client.println(StrONhour10);
client.println(StrONpct10);
client.println("
");
client.println(" ");
String StrONtotal11 = String(ONtotal11);
if (ONtotal11 < 10) StrONtotal11 = " " + StrONtotal11; // add leading spaces
if (ONtotal11 < 100) StrONtotal11 = " " + StrONtotal11;
if (ONtotal11 < 1000) StrONtotal11 = " " + StrONtotal11;
if (ONtotal11 < 10000) StrONtotal11 = " " + StrONtotal11;
String StrONhour11 = String(ONhour11);
if (ONhour11 < 10) StrONhour11 = " " + StrONhour11; // add leading spaces
if (ONhour11 < 100) StrONhour11 = " " + StrONhour11;
if (ONhour11 < 1000) StrONhour11 = " " + StrONhour11;
String StrONpct11 = String(ONpct11);
if (ONpct11 < 10) StrONpct11 = " " + StrONpct11; // add leading spaces
if (ONpct11 < 100) StrONpct11 = " " + StrONpct11; // add leading spaces
client.println("11");
client.println(StrONtotal11);
client.println(StrONhour11);
client.println(StrONpct11);
client.println("
");
client.println(" ");
String StrONtotal12 = String(ONtotal12);
if (ONtotal12 < 10) StrONtotal12 = " " + StrONtotal12; // add leading spaces
if (ONtotal12 < 100) StrONtotal12 = " " + StrONtotal12;
if (ONtotal12 < 1000) StrONtotal12 = " " + StrONtotal12;
if (ONtotal12 < 10000) StrONtotal12 = " " + StrONtotal12;
String StrONhour12 = String(ONhour12);
if (ONhour12 < 10) StrONhour12 = " " + StrONhour12; // add leading spaces
if (ONhour12 < 100) StrONhour12 = " " + StrONhour12;
if (ONhour12 < 1000) StrONhour12 = " " + StrONhour12;
String StrONpct12 = String(ONpct12);
if (ONpct12 < 10) StrONpct12 = " " + StrONpct12; // add leading spaces
if (ONpct12 < 100) StrONpct12 = " " + StrONpct12; // add leading spaces
client.println("12");
client.println(StrONtotal12);
client.println(StrONhour12);
client.println(StrONpct12);
client.println("
");
client.println(" ");
String StrONtotal13 = String(ONtotal13);
if (ONtotal13 < 10) StrONtotal13 = " " + StrONtotal13; // add leading spaces
if (ONtotal13 < 100) StrONtotal13 = " " + StrONtotal13;
if (ONtotal13 < 1000) StrONtotal13 = " " + StrONtotal13;
if (ONtotal13 < 10000) StrONtotal13 = " " + StrONtotal13;
String StrONhour13 = String(ONhour13);
if (ONhour13 < 10) StrONhour13 = " " + StrONhour13; // add leading spaces
if (ONhour13 < 100) StrONhour13 = " " + StrONhour13;
if (ONhour13 < 1000) StrONhour13 = " " + StrONhour13;
String StrONpct13 = String(ONpct13);
if (ONpct13 < 10) StrONpct13 = " " + StrONpct13; // add leading spaces
if (ONpct13 < 100) StrONpct13 = " " + StrONpct13; // add leading spaces
client.println("13");
client.println(StrONtotal13);
client.println(StrONhour13);
client.println(StrONpct13);
client.println("
");
client.println(" ");
String StrONtotal14 = String(ONtotal14);
if (ONtotal14 < 10) StrONtotal14 = " " + StrONtotal14; // add leading spaces
if (ONtotal14 < 100) StrONtotal14 = " " + StrONtotal14;
if (ONtotal14 < 1000) StrONtotal14 = " " + StrONtotal14;
if (ONtotal14 < 10000) StrONtotal14 = " " + StrONtotal14;
String StrONhour14 = String(ONhour14);
if (ONhour14 < 10) StrONhour14 = " " + StrONhour14; // add leading spaces
if (ONhour14 < 100) StrONhour14 = " " + StrONhour14;
if (ONhour14 < 1000) StrONhour14 = " " + StrONhour14;
String StrONpct14 = String(ONpct14);
if (ONpct14 < 10) StrONpct14 = " " + StrONpct14; // add leading spaces
if (ONpct14 < 100) StrONpct14 = " " + StrONpct14; // add leading spaces
client.println("14");
client.println(StrONtotal14);
client.println(StrONhour14);
client.println(StrONpct14);
client.println("
");
client.println(" ");
String StrONtotal15 = String(ONtotal15);
if (ONtotal15 < 10) StrONtotal15 = " " + StrONtotal15; // add leading spaces
if (ONtotal15 < 100) StrONtotal15 = " " + StrONtotal15;
if (ONtotal15 < 1000) StrONtotal15 = " " + StrONtotal15;
if (ONtotal15 < 10000) StrONtotal15 = " " + StrONtotal15;
String StrONhour15 = String(ONhour15);
if (ONhour15 < 10) StrONhour15 = " " + StrONhour15; // add leading spaces
if (ONhour15 < 100) StrONhour15 = " " + StrONhour15;
if (ONhour15 < 1000) StrONhour15 = " " + StrONhour15;
String StrONpct15 = String(ONpct15);
if (ONpct15 < 10) StrONpct15 = " " + StrONpct15; // add leading spaces
if (ONpct15 < 100) StrONpct15 = " " + StrONpct15; // add leading spaces
client.println("15");
client.println(StrONtotal15);
client.println(StrONhour15);
client.println(StrONpct15);
client.println("
");
client.println(" ");
String StrONtotal16 = String(ONtotal16);
if (ONtotal16 < 10) StrONtotal16 = " " + StrONtotal16; // add leading spaces
if (ONtotal16 < 100) StrONtotal16 = " " + StrONtotal16;
if (ONtotal16 < 1000) StrONtotal16 = " " + StrONtotal16;
if (ONtotal16 < 10000) StrONtotal16 = " " + StrONtotal16;
String StrONhour16 = String(ONhour16);
if (ONhour16 < 10) StrONhour16 = " " + StrONhour16; // add leading spaces
if (ONhour16 < 100) StrONhour16 = " " + StrONhour16;
if (ONhour16 < 1000) StrONhour16 = " " + StrONhour16;
String StrONpct16 = String(ONpct16);
if (ONpct16 < 10) StrONpct16 = " " + StrONpct16; // add leading spaces
if (ONpct16 < 100) StrONpct16 = " " + StrONpct16; // add leading spaces
client.println("16");
client.println(StrONtotal16);
client.println(StrONhour16);
client.println(StrONpct16);
client.println("
");
client.println(" ");
String StrONtotal17 = String(ONtotal17);
if (ONtotal17 < 10) StrONtotal17 = " " + StrONtotal17; // add leading spaces
if (ONtotal17 < 100) StrONtotal17 = " " + StrONtotal17;
if (ONtotal17 < 1000) StrONtotal17 = " " + StrONtotal17;
if (ONtotal17 < 10000) StrONtotal17 = " " + StrONtotal17;
String StrONhour17 = String(ONhour17);
if (ONhour17 < 10) StrONhour17 = " " + StrONhour17; // add leading spaces
if (ONhour17 < 100) StrONhour17 = " " + StrONhour17;
if (ONhour17 < 1000) StrONhour17 = " " + StrONhour17;
String StrONpct17 = String(ONpct17);
if (ONpct17 < 10) StrONpct17 = " " + StrONpct17; // add leading spaces
if (ONpct17 < 100) StrONpct17 = " " + StrONpct17; // add leading spaces
client.println("17");
client.println(StrONtotal17);
client.println(StrONhour17);
client.println(StrONpct17);
client.println("
");
client.println(" ");
String StrONtotal18 = String(ONtotal18);
if (ONtotal18 < 10) StrONtotal18 = " " + StrONtotal18; // add leading spaces
if (ONtotal18 < 100) StrONtotal18 = " " + StrONtotal18;
if (ONtotal18 < 1000) StrONtotal18 = " " + StrONtotal18;
if (ONtotal18 < 10000) StrONtotal18 = " " + StrONtotal18;
String StrONhour18 = String(ONhour18);
if (ONhour18 < 10) StrONhour18 = " " + StrONhour18; // add leading spaces
if (ONhour18 < 100) StrONhour18 = " " + StrONhour18;
if (ONhour18 < 1000) StrONhour18 = " " + StrONhour18;
String StrONpct18 = String(ONpct18);
if (ONpct18 < 10) StrONpct18 = " " + StrONpct18; // add leading spaces
if (ONpct18 < 100) StrONpct18 = " " + StrONpct18; // add leading spaces
client.println("18");
client.println(StrONtotal18);
client.println(StrONhour18);
client.println(StrONpct18);
client.println("
");
client.println(" ");
String StrONtotal19 = String(ONtotal19);
if (ONtotal19 < 10) StrONtotal19 = " " + StrONtotal19; // add leading spaces
if (ONtotal19 < 100) StrONtotal19 = " " + StrONtotal19;
if (ONtotal19 < 1000) StrONtotal19 = " " + StrONtotal19;
if (ONtotal19 < 10000) StrONtotal19 = " " + StrONtotal19;
String StrONhour19 = String(ONhour19);
if (ONhour19 < 10) StrONhour19 = " " + StrONhour19; // add leading spaces
if (ONhour19 < 100) StrONhour19 = " " + StrONhour19;
if (ONhour19 < 1000) StrONhour19 = " " + StrONhour19;
String StrONpct19 = String(ONpct19);
if (ONpct19 < 10) StrONpct19 = " " + StrONpct19; // add leading spaces
if (ONpct19 < 100) StrONpct19 = " " + StrONpct19; // add leading spaces
client.println("19");
client.println(StrONtotal19);
client.println(StrONhour19);
client.println(StrONpct19);
client.println("
");
client.println(" ");
String StrONtotal20 = String(ONtotal20);
if (ONtotal20 < 10) StrONtotal20 = " " + StrONtotal20; // add leading spaces
if (ONtotal20 < 100) StrONtotal20 = " " + StrONtotal20;
if (ONtotal20 < 1000) StrONtotal20 = " " + StrONtotal20;
if (ONtotal20 < 10000) StrONtotal20 = " " + StrONtotal20;
String StrONhour20 = String(ONhour20);
if (ONhour20 < 10) StrONhour20 = " " + StrONhour20; // add leading spaces
if (ONhour20 < 100) StrONhour20 = " " + StrONhour20;
if (ONhour20 < 1000) StrONhour20 = " " + StrONhour20;
String StrONpct20 = String(ONpct20);
if (ONpct20 < 10) StrONpct20 = " " + StrONpct20; // add leading spaces
if (ONpct20 < 100) StrONpct20 = " " + StrONpct20; // add leading spaces
client.println("20");
client.println(StrONtotal20);
client.println(StrONhour20);
client.println(StrONpct20);
client.println("
");
client.println(" ");
String StrONtotal21 = String(ONtotal21);
if (ONtotal21 < 10) StrONtotal21 = " " + StrONtotal21; // add leading spaces
if (ONtotal21 < 100) StrONtotal21 = " " + StrONtotal21;
if (ONtotal21 < 1000) StrONtotal21 = " " + StrONtotal21;
if (ONtotal21 < 10000) StrONtotal21 = " " + StrONtotal21;
String StrONhour21 = String(ONhour21);
if (ONhour21 < 10) StrONhour21 = " " + StrONhour21; // add leading spaces
if (ONhour21 < 100) StrONhour21 = " " + StrONhour21;
if (ONhour21 < 1000) StrONhour21 = " " + StrONhour21;
String StrONpct21 = String(ONpct21);
if (ONpct21 < 10) StrONpct21 = " " + StrONpct21; // add leading spaces
if (ONpct21 < 100) StrONpct21 = " " + StrONpct21; // add leading spaces
client.println("21");
client.println(StrONtotal21);
client.println(StrONhour21);
client.println(StrONpct21);
client.println("
");
client.println(" ");
String StrONtotal22 = String(ONtotal22);
if (ONtotal22 < 10) StrONtotal22 = " " + StrONtotal22; // add leading spaces
if (ONtotal22 < 100) StrONtotal22 = " " + StrONtotal22;
if (ONtotal22 < 1000) StrONtotal22 = " " + StrONtotal22;
if (ONtotal22 < 10000) StrONtotal22 = " " + StrONtotal22;
String StrONhour22 = String(ONhour22);
if (ONhour22 < 10) StrONhour22 = " " + StrONhour22; // add leading spaces
if (ONhour22 < 100) StrONhour22 = " " + StrONhour22;
if (ONhour22 < 1000) StrONhour22 = " " + StrONhour22;
String StrONpct22 = String(ONpct22);
if (ONpct22 < 10) StrONpct22 = " " + StrONpct22; // add leading spaces
if (ONpct22 < 100) StrONpct22 = " " + StrONpct22; // add leading spaces
client.println("22");
client.println(StrONtotal22);
client.println(StrONhour22);
client.println(StrONpct22);
client.println("
");
client.println(" ");
String StrONtotal23 = String(ONtotal23);
if (ONtotal23 < 10) StrONtotal23 = " " + StrONtotal23; // add leading spaces
if (ONtotal23 < 100) StrONtotal23 = " " + StrONtotal23;
if (ONtotal23 < 1000) StrONtotal23 = " " + StrONtotal23;
if (ONtotal23 < 10000) StrONtotal23 = " " + StrONtotal23;
String StrONhour23 = String(ONhour23);
if (ONhour23 < 10) StrONhour23 = " " + StrONhour23; // add leading spaces
if (ONhour23 < 100) StrONhour23 = " " + StrONhour23;
if (ONhour23 < 1000) StrONhour23 = " " + StrONhour23;
String StrONpct23 = String(ONpct23);
if (ONpct23 < 10) StrONpct23 = " " + StrONpct23; // add leading spaces
if (ONpct23 < 100) StrONpct23 = " " + StrONpct23; // add leading spaces
client.println("23");
client.println(StrONtotal23);
client.println(StrONhour23);
client.println(StrONpct23);
// client.println(counter);
client.println("
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"." // add period below the background you want to display or it won't scroll past last text
"